/**
 List里面常用的属性和方法：
    常用属性：
        length          长度
        reversed        翻转
        isEmpty         是否为空
        isNotEmpty      是否不为空
    常用方法：  
        add         增加
        addAll      拼接数组
        indexOf     查找  传入具体值
        remove      删除  传入具体值
        removeAt    删除  传入索引值
        fillRange   修改   
        insert(index,value);            指定位置插入    
        insertAll(index,list)           指定位置插入List
        toList()    其他类型转换成List  
        join()      List转换成字符串
        split()     字符串转化成List
        forEach   
        map
        where
        any
        every
 */

void main(){
  List list = ['张三', '李四', '王五'];
  list.add('李六');
  print(list);

  //List里面的属性
  print(list.length);
  print(list.isEmpty);
  print(list.isNotEmpty);
  print(list.reversed); //对列表进行倒序排序： (李六, 王五, 李四, 张三)

  //将(李六, 王五, 李四, 张三) 转换为 [李六, 王五, 李四, 张三]
  var list1 = list.reversed.toList();
  print(list1);

  //List里面的方法
  List myList = ['西瓜', '葡萄', '草莓'];
  myList.addAll(['李子', '桃子']); //拼接数组
  print(myList);

  //查找数据
  print(myList.indexOf('苹果'));
 
  //删除数据
  myList.remove('草莓');
  print(myList);

  myList.removeAt(0); //传索引值
  print(myList);

  //修改数据
  myList.fillRange(0, 2, '被修改的值');
  print(myList);

  List myList1 = ['aa', 'bb', 'cc'];
  //指定位置插入数据
  myList1.insert(3, 'dd'); //插入一个
  print(myList1);
  myList1.insertAll(4, ['ee', 'ff']); //插入多个
  print(myList1);

  List myList2 = [1, 'a', 2];
  var str = myList2.join(','); //list转换成字符串
  print(str);

  var str1 = 'aaa,bbb,ccc,ddd';
  var myList3 = str1.split(','); //string转换成list
  print(myList3);

}